ヘッダーをスキップ
Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド
リリース6.0
B25770-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

警告およびエラー 


問題が発生しTimesTenエラーを受信


この章では、エラーおよび警告の取得方法について説明した後、すべてのエラーおよび警告をエラー番号順にリストします。

注意: 現時点では、すべてのエラー番号が割り当てられているわけではありません。

エラーおよび警告の取得

次の例に示すとおり、JDBCでは、ネイティブ・エラー・コードおよびメッセージを取得できます。

例5.1
try { 
private static void printSQLExceptions(SQLException e) 
{ 
     while (e != null) { 
        System.out.println("SQLState: " +
        e.getSQLState()); 
        System.out.println("Message : " +
        e.getMessage()); 
        System.out.println("Vendor  : " +
        e.getErrorCode()); 
        e = e.getNextException(); 
        System.out.println(""); 
     } 
      e.printStackTrace(); 
} 
        .   .   . 
try { 
      // JDBC method calls here 
}  
catch (SQLException ex) { 
     ex.printSQLExceptions(); 
} 
        .   .   .  
} 
 

次の例に示すとおり、ODBCでは、ネイティブ・エラー・コードおよびメッセージは、SQLError関数を使用して取得できます。

例5.2
#define  MSG_LNG   512 
SQLCHAR szSqlState[MSG_LNG];              /* SQL state string  */ 
SQLINTEGER pfNativeError;                 /* Native error code */ 
SQLCHAR szErrorMsg[MSG_LNG];  
                              /* Error msg text buffer pointer */ 
SQLSMALLINT   pcbErrorMsg;             
                             /* Error msg text Available bytes */ 
SQLRETURN  ret = SQL_SUCCESS; 
while ( ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO ) { 
  ret = SQLError(henv, hdbc, hstmt, szSqlState, &pfNativeError, 
                 szErrorMsg, MSG_LNG, &pcbErrorMsg); 
  switch (ret) { 
  case SQL_SUCCESS: 
    fprintf(stderr, "*** %s\n*** ODBC Err = %s, " 
                    "TimesTen Err = %ld\n",  
            szErrorMsg, szSqlState, pfNativeError); 
    break; 
  case SQL_SUCCESS_WITH_INFO: 
    fprintf(stderr, "*** Call to SQLError failed with return " 
                    "code of SQL_SUCCESS_WITH_INFO.\n " 
                    "*** Need to increase size of " 
                    "message buffer.\n"); 
    break; 
  case SQL_INVALID_HANDLE: 
    fprintf(stderr, "*** Call to SQLError failed with " 
                    "return code of SQL_INVALID_HANDLE.\n"); 
    break; 
  case SQL_ERROR: 
    fprintf(stderr, "*** Call to SQLError failed with " 
                    "return code of SQL_ERROR.\n"); 
    break; 
  case SQL_NO_DATA_FOUND: 
    break; 
  } 
} 
 

1回のODBC操作またはJDBC操作で、複数のエラーを生成できます。これらのエラーは、ODBC関数SQLErrorまたはJDBCメソッドSQLExceptionを複数回コールすることによって取得できます。